package com.umeng.example;

import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;

import android.annotation.TargetApi;
import android.content.Context;
import android.os.Build.VERSION_CODES;

import com.umeng.commonsdk.UMConfigure;

/**
 * Created by wangfei on 17/9/14.
 */
public class RNUMConfigure {

    private static boolean hasInit = false;

    /**
     * 初始化友盟
     *
     * 第一个参数为 Context
     * 第二个参数为 友盟Appkey（为空时会从 AndroidManifest.xml 中读取）
     * 第三个参数为 channel（为空时会从 AndroidManifest.xml 中读取）
     * 第四个参数为 应用类型（手机或平板）
     * 第五个参数为 push的secret（如果没有使用push，可以为空）
     */
    public static void init(Context context, String appkey, String channel, int type, String secret) {
        hasInit = true;
        initRN("react-native", "2.0");
        UMConfigure.init(context, appkey, channel, type, secret);
    }

    @TargetApi(VERSION_CODES.KITKAT)
    private static void initRN(String v, String t) {
        Method method = null;
        try {
            Class<?> config = Class.forName("com.umeng.commonsdk.UMConfigure");
            method = config.getDeclaredMethod("setWraperType", String.class, String.class);
            method.setAccessible(true);
            method.invoke(null, v, t);
        } catch (NoSuchMethodException | InvocationTargetException | IllegalAccessException | ClassNotFoundException e) {
            e.printStackTrace();
        }
    }

    public static boolean hasInit() {
        return hasInit;
    }

}
